1. Field of the Invention
This invention relates generally to error correction devices, and more particularly to error correction devices used in correcting data read from DVD media.
2. Description of the Related Art
In recent years, optical disc technology has gained popularity in computer and entertainment industries. For example, by providing superior digital sound quality, CD players and discs have effectively displaced phonographs in the music industry. In addition, CD-ROM technology has also become popular in the computer industry as well for recording and reading large amounts of information or data.
However, in response to an ever increasing demand for convenient storage devices with even greater storage capacity, a new optical media known as digital video disc or digital versatile disc (DVD) has emerged as a promising new technology. The DVD media technology provides many times the storage capacity of a conventional CD-ROM disc. For example, a DVD medium may store data, for example, between 4.7 Gigabytes up to 18 Gigabytes. In contrast, conventional CD-ROM discs are usually only capable of storing about 650 Megabytes of data. Of course, the capacity of a DVD medium may surpass 18 Gigabytes in the near future as technology improves.
Information in a DVD medium is stored in a similar manner as the traditional CD-ROM disc. Prior Art FIG. 1A illustrates a DVD medium 100 having a center hole 104. In the DVD medium 100, data is typically stored in units of sectors that are laid out in a continuous spiral 102 from the center hole 104 and extending through to the circumference of the DVD medium 100. Sectors are laid out along the spiraling track 102. For example, a portion 106 of the spiraling track 102 may include numerous sequential sectors.
Prior art FIG. 1B illustrates a more detailed layout of the portion 106 of the spiraling track 102 in the DVD medium 100. The portion 106 includes five sequential sectors 110, 111, 112, 113, and 114 (i.e., 110 through 114). Each of the sectors 110 through 114 stores user data of 2064 bytes.
Each of the sectors 110 through 118 contains a header field 120 and a data field 122. The header field 120 is typically assigned sixteen bytes. Of these sixteen bytes, the first four bytes store the sector number for identifying the sector, and the remaining bytes are used to store information related to error detection, copy protection, and payload error detection.
Often however, user data stored in or read from a DVD medium may become corrupted or contaminated. For example, contamination or corruption can occur for reasons such as scratches, dust, noise, and other imperfections. The contamination or corruption typically causes two types of errors: a random error and a burst error. The random error refers to a single bit of error. On the other hand, the burst error refers to an error involving a set of contiguous bits.
To protect against such random and burst errors, DVD technology typically implements an error correction code (ECC) block coding scheme. In the ECC block coding scheme, user data is organized and encoded in data sectors. A data sector contains 12 bytes of header, 2048 bytes of user data, and 4 bytes of EDC. The data sector is split into 12 rows of 172 bytes each. Each data sector is converted to a recording sector by adding 10 bytes of row check bytes (i.e., inner parity bytes) to each row and also adding 16 rows of column check bytes (i.e., outer parity bytes). The column check bytes are interleaved between 16 sectors of user data such that each sector is followed by a row of column check byte. Accordingly, each recording sector consists of 13 rows of 182 bytes each.
The recording sectors are converted to physical sectors by splitting each row of the recording sectors down the middle and adding a 1-byte sync code in front of each half-row. In addition, the data is processed with an 8-to-16 modulation (EFM plus), which replaces each byte with a 16-bit code. This conversion process results in the creation of 16 blocks of physical sectors within an ECC block. Each of the physical sectors consists of 4836 bytes. The physical sector data are then sequentially written out row by row to a DVD medium as channel data starting with the first sector in the ECC block. The first sector of the next ECC block immediately follows the last sector of the current ECC block.
Prior Art FIG. 1C illustrates a block diagram of a DVD data correction system 150 for correcting random and burst mode errors. In this system 150, an EFMPlus decoder 132 receives a stream of physical sector data from a DVD disc 130 and decodes the data from a 16- to 8-byte format. A disc manager controller 134 receives the decoded stream of data from the EFMPlus decoder 132 and identifies sync bytes to convert the physical sectors back to recording sectors. The disc manager 134 then transmits the recording sector data to a buffer 136. An error correction circuitry 138 reads the data in the buffer 136 and performs error correction on the sector data held in the buffer 136. Using the data contained in the buffer 136, the error correction circuitry 138 performs both row and column error corrections at this stage. In this process, the error correction circuitry 138 converts the recording sector data into the original user data for transmission to a host 140.
In the prior art DVD data correction system 150, the error correction circuitry 138 performs both row and column error corrections at the same stage of the data pipeline. Unfortunately, performing row and column error corrections at the same error correction stage can lead to a performance degradation. For example, when the header 120 in a desired sector 112 contains an uncorrectable error, sector 112 may never be identified during a search.
In order to address such a situation, conventional techniques typically read several sectors (e.g., 5 to 6 sectors) ahead of time. Then, if the sector 112 cannot be identified in the sequence of sectors, a pause in processing is required to enable one more revolution of the DVD media. This revolution of the DVD media will enable the same sectors to be re-read, including the sectors located around the un-identifiable header of sector 112. For instance, a DVD drive may determine that it has missed the desired sector when it is only able to read a header associated with the next sector. At this point, the DVD drive will determine that it has failed to detect the desired sector. In order to read the undetected header, the DVD drive must make another revolution of the DVD media to re-read the group of sectors. This time the DVD drive reads the unidentified sector by assuming that sector 112 is located between the identifiable sectors directly before and after the undetected sector (i.e., sectors 111 and 113, respectively).
By thus making another revolution around the DVD medium to re-read the undetected sector, the conventional system 150 results in significant performance and time penalties. Furthermore, since the conventional system 150 typically reads several sectors ahead of time, real time error detection and correction is not possible.
In addition, the conventional system 150, which performs the row and column error corrections at the same stage, also delays the identification of a desired sector. This is because the header typically is not processed until both the row and column data have been transferred to the buffer 136. In the conventional system 150, once a block of data has been transferred to the buffer 136, the row correction reads the entire data stored in the buffer 136 to perform the row corrections. Accordingly, the above described conventional techniques also tend to introduce delays associated with accessing and correcting the data in the buffer 136.
In view of the foregoing, what is needed is a device and method that can reliably correct the row data including the header in a DVD data sector without reading back the entire data in a buffer. What is further needed is a device and method that can provide the corrected row data including the header in real time to a DVD decoder for processing without introducing delays associated with loading and correcting the column data.